package Controleur;
import java.util.*;

import modele.Snapshot;
/******************************************************
Cours : LOG120
Session : E2011
Groupe : 01
Projet : Laboratoire #4
�tudiant(e)(s) : Sean Blahovici
Mathieu Ferchaud
Code(s) perm. : BLAS30068807

Professeur : Chamseddine Talhi
Charg� de labo : Eric Goulet
Nom du fichier : Historique.java
Date cr�� : 2011-07-21
Date dern. modif. 2011-07-21
*******************************************************
Historique des modifications
*******************************************************
2011-07-21 Version initiale (1)
*******************************************************/
public class Historique {

	//Attributs
	private ArrayList<Snapshot> historique;
	private int curseur;
	
	//M�thodes
	
	/*
	 * Constructeur par d�faut
	 */
	public Historique(){
		
		historique = new ArrayList<Snapshot>();
		curseur = -1;
	}
	
	/*
	 * M�thode pour ajouter un snapshot � la liste de snapshots
	 * @param objet de la classe Snapshot
	 * @return
	 */
	public void addSnapShot(Snapshot snapshot){
		curseur++;
		historique.add(snapshot);
		System.out.println("snapshot added : " + curseur);
		
	}
	
	
	/*
	 * M�thode pour r�cup�rer le dernier snapshot
	 * @param  
	 * @return  objet de la classe Snapshot
	 */		
	public Snapshot getPreviousSnapShot(){
		if(curseur == 0)
			return null;
		
		curseur--;
		
		Snapshot toReturn = historique.get(curseur);
		System.out.println("getting snapshot " + curseur);
		
		return toReturn;
	}

	public Snapshot getNextSnapshot(){
		
		if(curseur < historique.size() - 1){
			curseur ++;
			Snapshot toReturn = historique.get(curseur);
			System.out.println("getting snapshot " + curseur);
			return toReturn;
		}else
			return null;
	}
	
	/*
	 * M�thode pour r�cup�rer un snapshot de notre choix
	 * @param  
	 * @return objet de la classe Snapshot
	 */		
	public Snapshot getASnapShot(int index){

		return historique.get(index);
	}
	
	public Snapshot getLatestSnapshot(){
		return historique.get(curseur);
	}
}
